#pragma once

#include "Region.h"
#include "Player.h"
#include "Equipment.h"
#include "GameUI.h"

struct Game;

class Village : public Region
{
	void VillageMenuOperate(Game& game);

	void shop(Game& game);

	std::vector<std::shared_ptr<Equipment>> _shop;

	template<class Get, class T>
	inline Get& getGoods(std::shared_ptr<T>& p)
	{
		//return *dynamic_cast<Get*>(&(*p));
		return *dynamic_cast<Get*>(&(*p));
	}

public:

	Village();

	void moveRegion(Game& game) override
	{
		VillageMenuOperate(game);
	}
};
